package br.com.speedprevweb.bean;

import br.com.speedprevweb.dao.TipoBeneficioDao;
import br.com.speedprevweb.dao.impl.TipoBeneficioDaoImpl;
import br.com.speedprevweb.model.TipoBeneficio;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;

@ManagedBean(name = "tipoBeneficioBean")
@SessionScoped
public class TipoBeneficioBean implements Serializable {

  private TipoBeneficio tipoBeneficio = new TipoBeneficio();
  private List<TipoBeneficio> listaTipoBeneficio = new ArrayList();

  public TipoBeneficioBean() {
    listaTipoBeneficio = new TipoBeneficioDaoImpl().listarTodos();
    tipoBeneficio = new TipoBeneficio();
  }

  public String incluirTipoBeneficio() {
    tipoBeneficio = new TipoBeneficio();
    return "TipoBeneficioDetalhe";
  }

  public String preparaAlterarTipoBeneficio() {
    return "TipoBeneficioDetalhe";
  }

  public String excluirTipoBeneficio() {
    TipoBeneficioDao tpTipoBeneficioDao = new TipoBeneficioDaoImpl();
    tpTipoBeneficioDao.excluir(tipoBeneficio);
    listaTipoBeneficio = new TipoBeneficioDaoImpl().listarTodos();
    tipoBeneficio = new TipoBeneficio();
    return "TipoBeneficio";
  }

  public String salvar() {
    if (tipoBeneficio.getIdTipoBeneficio() == 0) {
      incluir();
    } else {
      alterar();
    }
    return "TipoBeneficio";
  }

  public void incluir() {
    TipoBeneficioDao tpTipoBeneficioDao = new TipoBeneficioDaoImpl();
    tpTipoBeneficioDao.salvar(this.tipoBeneficio);
    listaTipoBeneficio = new TipoBeneficioDaoImpl().listarTodos();
    tipoBeneficio = new TipoBeneficio();
  }

  public void alterar() {
    TipoBeneficioDao tpRegimeDao = new TipoBeneficioDaoImpl();
    tpRegimeDao.alterar(tipoBeneficio);
  }

  public String cancelar() {
    return "TipoBeneficio";
  }

  private void atualizarDataTable() {
    listaTipoBeneficio = new TipoBeneficioDaoImpl().listarTodos();
    tipoBeneficio = new TipoBeneficio();
  }

  public int totalRegistros() {
    return listaTipoBeneficio.size();
  }

  public TipoBeneficio getTipoBeneficio() {
    return tipoBeneficio;
  }

  public void setTipoBeneficio(TipoBeneficio tipoBeneficio) {
    this.tipoBeneficio = tipoBeneficio;
  }

  public List<TipoBeneficio> getTiposRegime() {
    return listaTipoBeneficio;
  }

  public void setTiposRegime(List<TipoBeneficio> tiposRegime) {
    this.listaTipoBeneficio = tiposRegime;
  }

  public String descricaoTipoBeneficio() {
    return this.tipoBeneficio.getDsTipoBeneficio();
  }
}
